package com.tan.mapper;

import com.tan.domain.Blog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tan.domain.vo.BlogVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author longshifu
 * @Entity com.tan.domain.Blog
 */
public interface BlogMapper extends BaseMapper<Blog> {
    /**
     * 获取总阅读量
     * @return
     */
    Long countViews();

    /**
     *  获取总点赞数
     * @return
     */
    Long countAppreciate();

    /**
     * 根据月份统计阅读量
     * @return
     */
    List<String> viewCountByMonth();

    /**
     * 根据月份统计博客发表数
     * @return
     */
    List<String> blogCountByMonth();

    /**
     * 根据月份统计总点赞数
     * @return
     */
    List<String> appreciateCountByMonth();

    /**
     * 获取所有博客
     * @return
     */
    List<BlogVO> listAllBlog();

    /**
     * 通过标题或类型查询
     * @param title
     * @param typeId
     * @return
     */
    List<BlogVO> getAllByTitleOrTypeId(@Param("title")String title, @Param("typeId") Integer typeId);

    /**
     * 修改
     * @param blogId
     * @param typeId
     * @param tagId
     * @return
     */
    int updateBlog(@Param("blogId") Integer blogId, @Param("typeId") Integer typeId,@Param("tagId") Integer tagId );

    /**
     * 按主键选择性更新
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(Blog record);

    /**
     * 过 id 查询博客详情
     * @param id
     * @return
     */
    BlogVO getBlogById(Long id);


}




